package com.sun.utils;

import javax.net.ssl.*;

import org.apache.commons.collections4.MapUtils;

import java.security.SecureRandom;
import java.security.cert.X509Certificate;
public class SSLSocketClient {
  
  //获取这个SSLSocketFactory 
  public static SSLSocketFactory getSSLSocketFactory() {
    try { 
      SSLContext sslContext = SSLContext.getInstance("SSL");
      sslContext.init(null, getTrustManager(), new SecureRandom());
      return sslContext.getSocketFactory(); 
    } catch (Exception e) { 
      throw new RuntimeException(e); 
    } 
  } 
  
  //获取TrustManager 
  private static TrustManager[] getTrustManager() {
    TrustManager[] trustAllCerts = new TrustManager[]{ 
        new X509TrustManager() {
          @Override
          public void checkClientTrusted(X509Certificate[] chain, String authType) { 
          } 
  
          @Override
          public void checkServerTrusted(X509Certificate[] chain, String authType) { 
          } 
  
          @Override
          public X509Certificate[] getAcceptedIssuers() { 
            return new X509Certificate[]{}; 
          } 
        } 
    }; 
    return trustAllCerts; 
  } 
  
  //获取HostnameVerifier 
  public static HostnameVerifier getHostnameVerifier() {
    HostnameVerifier hostnameVerifier = new HostnameVerifier() { 
      @Override
      public boolean verify(String s, SSLSession sslSession) { 
        return true; 
      } 
    }; 
    return hostnameVerifier; 
  } 
} 